home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / misc / HISTORY.txt < prev    next >
Text File  |  1998-12-22  |  21KB  |  426 lines

  1.  
  2.                              History of changes
  3.                                       
  4.      Lastest version first.
  5.      For a note on version numbering, see the [1]SmallEiffel FAQ.
  6.    Futur work (Not Yet done).
  7.      * Files and directories library.
  8.      * BIT_STRING class to handle long bit sequences with a reference
  9.        semantics.
  10.      * Eiffel source code debugger.
  11.        
  12.    Release - 0.79 - Tuesday December 22th, 1998.
  13.      * The new Eiffel construct Precursor as described OOSC2 is now
  14.        implemented..
  15.      * The Eiffel expression strip is now implemented.
  16.      * Extended anchored definition to accept infix and prefix feature
  17.        names. For example, this kind of declaration is now accepted :
  18.          foo: like infix "+".
  19.      * Classes COLLECTION2, ARRAY2 and FIXED_ARRAY2 of lib_std completely
  20.        revisited.
  21.      * Fixed a bug related to calls of the form f.g.h; on expanded
  22.        objects.
  23.      * Fixed a bug related to inheritance of generic classes.
  24.      * Fixed bugs related to assertions checking in case of exceptions
  25.        (rescue clause, retry). Improved cycle detection in assertions.
  26.      * Fixed bug in GC related to recycling of "monsters" (very large
  27.        resizable objets).
  28.      * Fixed an incredible bug in the implementation of the like Current
  29.        type mark. ;-).
  30.      * Fixed many others bugs ($ operator, GC for alpha DEC, ...).
  31.      * System customization file for the BeOS system added in the "sys"
  32.        sub-directory (more on [2]system customization).
  33.      * Contents of the environment variable SmallEiffel must be now set
  34.        with the absolute path of the file "system.se" which is in the
  35.        sub-directory "sys" of the installation directory.
  36.        Under a UNIX-like system, the value of the SmallEiffel environment
  37.        variable may be for example: /usr/lib/SmallEiffel/sys/system.se
  38.        Commands are also more robust when this environment variable
  39.        contains non-alphanumeric characters.
  40.      * No more ensure assertion in GENERAL.get_environment_variable.
  41.      * Commands [3]compile_to_jvm and [4]print_jvm_class completely
  42.        revisited (Java byte-code can be now used with the -verify Java
  43.        option).
  44.      * Validity rule VDRD.6 is now enforced.
  45.      * Balancing rule (automatic promotion) for INTEGER, DOUBLE and REAL
  46.        is now implemented.
  47.      * Recursive once routines now work correctly.
  48.      * Unmodified generated C files are not touched anymore.
  49.      * Assertions correctly checked for all external C routines.
  50.      * Exception handling now works when an exception occurs in external
  51.        C code.
  52.      * Cleaned the compiler and decreased its memory footprint.
  53.        
  54.                                    [Line]
  55.                                       
  56.    Release - 0.80 - Thursday July 9th, 1998.
  57.      * Exception handling implemented. Class EXCEPTIONS added in lib_std.
  58.      * Execution trace stack implementation completely revisited: more
  59.        comprehensive information is now available, and the overhead
  60.        incurred by this stack is greatly reduced (executables are about 3
  61.        times faster when running in -all_check mode).
  62.      * Added option -no_main in command [5]compile_to_c to avoid
  63.        generation of the C main function. This is useful when one wants
  64.        to start execution from outside before calling some Eiffel
  65.        routines via the [6]cecil interface.
  66.      * Behavior of compilation flag [7]-trace of command compile_to_c
  67.        changed to allow step-by-step execution (embryo of Eiffel source
  68.        code debugger).
  69.      * Feature ARRAY.resize completely revisited (added two features in
  70.        class NATIVE_ARRAY: clear and move).
  71.      * Garbage Collector optimized (the GC should be more agressive and
  72.        some benchmarks are included in directory
  73.        SmallEiffel/misc/benchmarks/gc/*/bench.e).
  74.      * Associativity of infix operator "^" is now correctly handled.
  75.      * Fixed bugs in PLATFORM for Minimum_double, Minimum_real and
  76.        Minimum_character_code.
  77.      * Fixed some others bugs about export rules, about expanded objects
  78.        with expanded attributes.
  79.      * Fixed bugs in pretty.
  80.        
  81.                                    [Line]
  82.                                       
  83.    Release - 0.81 - Thursday April 9th, 1998
  84.      * First finalized version of the garbage collector. Currently
  85.        supported architectures are SPARC Solaris, HP-UX, Linux, MacOS,
  86.        Windows 95 and NT (see file SmallEiffel/sys/gc for details). Added
  87.        flag -no_gc to suppress the GC (see [8]man/compile_to_c).
  88.      * Changed the default for the generation of C code. Now, the C code
  89.        and object files are kept by default. (This previously required
  90.        using option -c_code, which becomes obsolete.)
  91.        Added flag -clean which removes all the C and object files of the
  92.        system. (This corresponds to the old default behavior.)
  93.      * Fixed a bug related to buffered input under Windows/MS VC.
  94.      * Fixed a bug in misc/INSTALL.SH script.
  95.      * Added require is_connected for all features put_* of class
  96.        OUTPUT_STREAM.
  97.      * Fixed a bug in command [9]short (require/ensure assertion of
  98.        deferred routines are now printed).
  99.      * Added one useful hook for mode -html1 in command [10]short (see
  100.        hook Mcn).
  101.      * Added directory SmallEiffel/sys/runtime which contains the C
  102.        runtime.
  103.      * Fixed a bug about instanciation of class ANY itself (not so common
  104.        !).
  105.      * Fixed a bug about inlining of operator $.
  106.      * Fixed a bug about cyclic anchored definitions.
  107.        
  108.                                    [Line]
  109.                                       
  110.    Release - 0.82 - Friday January 16th, 1998
  111.      * Became the official GNU Eiffel compiler.
  112.      * Added first HTML mode to command [11]short. Flag -html1. Thanks to
  113.        Matthias Klause.
  114.      * Fixed bugs in command [12]pretty.
  115.      * It is now possible to rename/redefine external "SmallEiffel"
  116.        features.
  117.      * Files *.hlp of directory SmallEiffel/man no longer exists. All the
  118.        documentation is now in *.html files plus corresponding
  119.        automatically generated *.txt files.
  120.      * Manifest arrays creation has been optimized.
  121.      * Validity rule VHRC.2 is now enforced.
  122.      * Fixed bugs about export clause.
  123.      * Feature GENERAL.hash_code no longer exists. Added ELKS class
  124.        HASHABLE in order to be compatible with others
  125.        compilers/libraries.
  126.      * Fixed a bug in pre-computed once functions.
  127.      * Fixed a bug in REAL/DOUBLE keybord input.
  128.      * Reintroduced left hand side cast in C code for better performances
  129.        (allowed by the C ANSI standard).
  130.      * Obsolete features (obsolete keyword) now generate a Warning.
  131.        
  132.                                    [Line]
  133.                                       
  134.    Release - 0.83 - Friday September 19th, 1997
  135.      * Added command short to the distribution.
  136.      * Added directory contrib in the distribution. This directory
  137.        contains some scripts to use gdb as source level debugger for
  138.        SmallEiffel.
  139.      * Added flag -no_warning to commands: compile_to_c, pretty, and
  140.        compile_to_jvm.
  141.      * Added flag -case_insensitive to command compile_to_c.
  142.      * Fixed a bug for inherit/select.
  143.      * Fixed a bug for some pre-computed once function.
  144.        
  145.                                    [Line]
  146.                                       
  147.    Release - 0.84 - Monday August 18th, 1997
  148.      * Class BIT is now implemented in Java bytecode (command
  149.        compile_to_jvm).
  150.      * Added external specification to call Java code (when using
  151.        compile_to_jvm).
  152.      * To fit on a single 3.5 inches disk, unsplitted C code for large
  153.        commands (compile_to_c and compile_to_jvm) is no longer in the
  154.        distribution as well as the old lib_test directory.
  155.      * Changed the algorithm to load classes in order to allow upper case
  156.        letters in files names (priority is always given to lower case
  157.        file names).
  158.      * Added STRING.substring_index (from ELKS written by Fridtjof
  159.        SIEBERT).
  160.      * Added one more file in SmallEiffel/sys/ directory in order to
  161.        customize object files suffix (thus, using Borland C compiler on
  162.        Windows is now possible).
  163.      * Changed the behavior of end_of_input of INPUT_STREAM (this flag is
  164.        true _after_ last character has been read).
  165.      * Fixed a bug in manifest arrays (mixed objects including Void).
  166.      * Fixed a bug dealing with some statically computed expressions.
  167.      * Fixed a bug in repeated inheritance.
  168.        
  169.                                    [Line]
  170.                                       
  171.    Release - 0.85 - Thursday July 3rd, 1997
  172.      * First beta-release of commands compile_to_jvm and print_jvm_class!
  173.      * The new name for class C_ARRAY is now NATIVE_ARRAY (because it
  174.        works both with Java and C). The old C_ARRAY name is temporarily
  175.        accepted with a warning from the compiler.
  176.      * For readability and to avoid confusion with Java names, external
  177.        tags have changed (see for new names in [13]man/external file).
  178.        Old names are temporarily accepted with a warning giving the new
  179.        name to use.
  180.      * Added feature to_hexadecimal and feature to_hexadecimal_in in
  181.        class CHARACTER.
  182.      * Feature io, std_input, std_output and std_error of class GENERAL
  183.        are no longer frozen.
  184.      * Some changes in STD_FILE_READ for features read_integer,
  185.        read_double and read_real (added comments, precondition and solved
  186.        the problem with the trailing separator).
  187.      * Feature die_with_code of GENERAL now accepts any INTEGER code (not
  188.        just predefined exit_success_code and exit_failure_code).
  189.      * Fixed a bug in STRING. The following expression is now true:
  190.        ("a%/0/b").count = 3
  191.        Just try this on your favorite Eiffel compiler ;-)
  192.      * Many changes in basic input/output in order to be compatible with
  193.        Java: No more class STD_FILE (the name is now free for an ELKS
  194.        implementation). Two new classes: INPUT_STREAM and OUTPUT_STREAM.
  195.      * Feature unread_character of class INPUT_STREAM is now implemented
  196.        in Eiffel.
  197.      * Added OUTPUT_STREAM.put_pointer to view a POINTER.
  198.        
  199.                                    [Line]
  200.                                       
  201.    Release - 0.86 - Sunday April 13th, 1997
  202.      * All reported bugs at this time have been fixed.
  203.      * Added flag -verbose to commands: compile, compile_to_c and clean.
  204.        When this new flag is not present, commands now work silently
  205.        unless some error (or warning) occurs.
  206.      * Features BOOLEAN.infix "or" and BOOLEAN.infix "and" are now
  207.        written in pure Eiffel. As a consequence, it is very important for
  208.        the SmallEiffel programmer to make the distinction between
  209.        BOOLEAN.infix "and then" and BOOLEAN.infix "and" (respectively for
  210.        BOOLEAN.infix "or else" and BOOLEAN.infix "or"). When
  211.        left-hand-side argument produces no side effect, the semi-strict
  212.        operator (BOOLEAN.infix"and then"/"or else") may run faster.
  213.      * Fixed REAL.sin (the old one was calling sqrt :-).
  214.      * Fixed a bug in INTEGER.append_in (you can now print
  215.        Minimum_integer).
  216.      * Added feature in_range in class COMPARABLE.
  217.      * Result type of REAL.infix "^" is now DOUBLE for ELKS
  218.        compatibility.
  219.      * Feature remove is now implemented in all subclasses of COLLECTION
  220.        (i.e. ARRAY, FIXED_ARRAY, LINK_LIST and LINK2_LIST).
  221.      * Added feature add for all subclasses of COLLECTION.
  222.      * Conversion DOUBLE/STRING : ANSI C sscanf and sprintf is now used
  223.        to avoid loss of precision.
  224.      * Added some more class invariant code generation when compiling in
  225.        -invariant_check mode. Class invariant is now also checked before
  226.        exit of a routine.
  227.      * Added feature file_tools in class GENERAL to ease access to class
  228.        FILE_TOOLS.
  229.      * Changed printing format for basic *_REF classes. For example,
  230.        instruction print(1); now prints 1.
  231.      * Feature truncated_to_integer of DOUBLE is now ELKS compatible
  232.        (added feature rounded in class DOUBLE to replace the old
  233.        truncated_to_integer). Same changes in class REAL.
  234.        
  235.                                    [Line]
  236.                                       
  237.    Release - 0.87 - Tuesday January 7th, 1997
  238.      * Added a new flag -trace to ease debug (see [14]man/compile_to_c
  239.        file).
  240.      * More inlining at Eiffel level (-boost mode only).
  241.      * Class BIT_N completely revisited. It may be as fast as C.
  242.      * Added class C_ARRAY[E] to deal directly with C arrays at Eiffel
  243.        level. Thus there are no more external "CSE" or c_inline_c in
  244.        classes STRING/ARRAY/FIXED_ARRAY (only full Eiffel). Eiffel code
  245.        is nice and STRING/ARRAY/FIXED_ARRAY may run faster.
  246.      * Fixed a bug in STD_FILE_READ.read_double.
  247.      * Ordering of C output to increase gcc inlining.
  248.      * According to [15]man/compile_to_c) , flag -debug_check now works
  249.        (debug instructions are no longer generated in mode -all_check).
  250.      * Unused local variables removed at Eiffel level (warning added for
  251.        -debug_check mode only).
  252.      * Default class ANY now inherits PLATFORM (as in ETL).
  253.      * Fixed a bug in floating-point constants.
  254.      * Added directory sys to customize default C compiler, default C
  255.        linker and default loading path.
  256.      * Fixed some bugs with outside expanded types.
  257.      * Fixed a bug with rename/select.
  258.      * Redefinition of once routine is now allowed.
  259.      * Feature GENERAL.conforms_to is now implemented.
  260.      * Rule VFFD.7 is now enforced.
  261.      * Feature force implemented for all COLLECTION.
  262.      * Added conversions features CHARACTER.to_bit, INTEGER.to_bit,
  263.        BIT_N.to_character and BIT_N.to_integer.
  264.        
  265.                                    [Line]
  266.                                       
  267.    Release - 0.88 - Wednesday October 30th, 1996
  268.      * Fixed bugs dealing with inherit/rename/select.
  269.      * Added warning for missing colon in actual arguments list.
  270.      * Warning : INSTALL procedure has changed and you have to set
  271.        manually the default loading path (see misc/INSTALL for details).
  272.      * Added some VMS customization.
  273.      * Fixed bugs when printing run-time stack.
  274.      * Warning added for missing colon in actual parameter list.
  275.      * Added flush in class STD_FILE_WRITE.
  276.      * No more left hand side cast in C code (because some C compilers
  277.        don't like them).
  278.        
  279.                                    [Line]
  280.                                       
  281.    Release - 0.89 - Sunday September 15th, 1996
  282.      * Calling Eiffel from C is now implemented (see [16]man/cecil)
  283.        file).
  284.      * Object creation uses C calloc instead malloc+memset.
  285.      * Object creation is inlined.
  286.      * ARRAY/FIXED_ARRAY put and item are now inlined (-boost only).
  287.      * Added feature capacity and resize in FIXED_ARRAY.
  288.      * Added some classes in std_lib: LINK2_LIST (two way linked list),
  289.        COLLECTION2 (deferred), ARRAYED_COLLECTION (deferred),
  290.        LINKED_COLLECTION (deferred) and FIXED_ARRAY2 in std_lib.
  291.      * More user's routines are inlined (-boost only).
  292.        
  293.                                    [Line]
  294.                                       
  295.    Release - 0.90 - Friday August 23rd, 1996
  296.      * Added random number generator library (SmallEiffel/lib_rand).
  297.      * Added checking of assertions for external "CSE" features.
  298.      * Anchoring on expanded types are now allowed.
  299.      * Multiple level of anchoring definition allowed.
  300.      * Fixed a bug in STRING.from_external.
  301.      * Fixed a bug with mixed rename/redefine.
  302.      * Inheritance loop detection.
  303.      * Anchoring loop detection.
  304.      * Fixed a bug with renaming infix/prefix.
  305.      * Command clean also use the make suffix.
  306.      * Added ELKS95 sign in INTEGER/REAL/DOUBLE.
  307.      * Feature make is the default root feature name for compile.
  308.      * Optimized ARRAY.add_last and STRING.extend.
  309.      * Changed STRING.out (no more enclosing %" printed).
  310.      * Remove warning gcc messages for 64 bits machine (alpha/DECK).
  311.      * Added option -no_split for a better finalization (see
  312.        [17]man/compile_to_c) file).
  313.        
  314.                                    [Line]
  315.                                       
  316.    Release - 0.91 - Wednesday July 24th, 1996
  317.      * Incremental C compiling mode implemented (see option -c_code in
  318.        help file [18]man/compile) .
  319.      * Added command clean in help file [19]man/clean.
  320.      * Added class FILE_TOOLS.
  321.      * No more empty C struct in generated C code (to avoid problems with
  322.        Microsoft Windows C compiler).
  323.      * Fixed one more bug with conformance rule VNCG.
  324.        
  325.                                    [Line]
  326.                                       
  327.    Release - 0.92 - Saturday July 20th, 1996
  328.      * Fixed some more bugs with conformance rule VNCG.
  329.      * Added math functions in DOUBLE/REAL (sin, cos, tan, asin, acos,
  330.        atan, ... ANSI C names).
  331.        
  332.                                    [Line]
  333.                                       
  334.    Release - 0.93 - Thursday July 18th, 1996
  335.      * Fixed some more bugs with conformance rule VNCG.
  336.      * Type BIT is now implemented.
  337.      * Added ELKS 95 STRING.left_adjust and STRING.right_adjust.
  338.        
  339.                                    [Line]
  340.                                       
  341.    Release - 0.94 - Friday July 5th, 1996
  342.      * Fixed some bugs with conformance rule VNCG.
  343.      * Static expressions are used to detect pre-computable once
  344.        routines.
  345.      * Added features to_external and from_external both in classes ARRAY
  346.        and FIXED_ARRAY.
  347.      * Fixed a bug for inheritance of ARRAY or FIXED_ARRAY.
  348.      * Contents of end of class comment checked.
  349.      * Added documentation file for external calls (see help file
  350.        [20]man/external ).
  351.        
  352.                                    [Line]
  353.                                       
  354.    Release - 0.95 - Thursday May 30th, 1996
  355.      * It is now possible to inherit ARRAY.
  356.      * It is now possible to inherit STRING.
  357.      * Flag -cc of compile_to_c has changed.
  358.      * The PLATFORM class is now conform to ELKS95.
  359.      * Added feature twin (like the one of TowerEiffel) in GENERAL.
  360.      * Added features to_external and from_external in class STRING.
  361.      * Fixed some bugs in once pre-computed routines.
  362.        
  363.                                    [Line]
  364.                                       
  365.    Release - 0.96 - Friday May 10th, 1996
  366.      * Internal renaming to suppress some warning messages and for a
  367.        smooth integration with C++ software.
  368.      * DOS and Macintosh better portability.
  369.        
  370.                                    [Line]
  371.                                       
  372.    Release - 0.97 - Thursday May 2nd, 1996
  373.      * Inside of compiler cleaned.
  374.      * Pre-Computing of some once functions.
  375.      * Added class COLLECTION, LINK_LIST and FIXED_ARRAY in lib_std.
  376.        
  377.                                    [Line]
  378.                                       
  379.    Release - 0.98 - Friday March 15th, 1996
  380.      * Command pretty added.
  381.      * Implements Eiffel expanded clause.
  382.        
  383.                                    [Line]
  384.                                       
  385.    Release - 0.99 - Saturday February 17th, 1996
  386.      * The first version available on the net. Before being made
  387.        available, the very first SmallEiffel had been tested since
  388.        September 1995 by students of the University Henri Poincaré
  389.        
  390.                                    [Line]
  391.                                       
  392.    Release - 1.00 - July 1995
  393.      * The very first bootstrap. SmallEiffel is born.
  394.        
  395.    
  396.    
  397.                                    [Line]
  398.                                       
  399.              Copyright © Dominique COLNET and Suzanne COLLIN -
  400.                            [21]<colnet@loria.fr>
  401.                      Last update: December 22th, 1998. 
  402.  
  403. References
  404.  
  405.    1. file://localhost/home/colnet/SmallEiffel/misc/man/SmallEiffelFAQ.html#Q02
  406.    2. file://localhost/home/colnet/SmallEiffel/misc/man/system.html
  407.    3. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_jvm.html
  408.    4. file://localhost/home/colnet/SmallEiffel/misc/man/print_jvm_class.html
  409.    5. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_c.html
  410.    6. file://localhost/home/colnet/SmallEiffel/misc/man/cecil.html
  411.    7. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_c.html#trace
  412.    8. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_c.html
  413.    9. file://localhost/home/colnet/SmallEiffel/misc/man/short.html
  414.   10. file://localhost/home/colnet/SmallEiffel/misc/man/short.html
  415.   11. file://localhost/home/colnet/SmallEiffel/misc/man/short.html
  416.   12. file://localhost/home/colnet/SmallEiffel/misc/man/pretty.html
  417.   13. file://localhost/home/colnet/SmallEiffel/misc/man/external.html
  418.   14. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_c.html
  419.   15. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_c.html
  420.   16. file://localhost/home/colnet/SmallEiffel/misc/man/cecil.html
  421.   17. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_c.html
  422.   18. file://localhost/home/colnet/SmallEiffel/misc/man/compile.html
  423.   19. file://localhost/home/colnet/SmallEiffel/misc/man/clean.html
  424.   20. file://localhost/home/colnet/SmallEiffel/misc/man/external.html
  425.   21. mailto:colnet@loria.fr
  426.